NodeからGemini APIを使ってみる
Introduction
以前から予告されていたとおり、Gemini Pro APIが使えるようになりました。
Geminiとは、2023年12月6日にGoogleから発表されたマルチモーダル大規模言語モデルです。
LaMDA/PaLM2の後継と位置づけられており、テキスト、画像、音声などのデータを
同時に認識して処理が可能とされています。
今回はこのGemoniシリーズのGemini Pro(テキスト・コード生成/チャットなどを想定)をNodeから使ってみます。
なお、他にもGemini Pro Visionと呼ばれる、テキスト・画像・動画を扱えるモデルもあります。
現時点では、Gemini Pro/Gemini Pro Visionは60req/分が無料で使えます。
GAまでは無料で使えるので、心置きなく試せます。
Environment
- MacBook Pro (13-inch, M1, 2020)
- OS : MacOS 13.5.2
- node : v20.8.1
Setup
Gemini APIを使うための最も簡単な方法は、Google AI StudioでAPI Keyを取得することです。
※ Generative AI Studioではない
Google AI Studioにアクセスし、「Get API key」をおせば取得できます。
あとは環境変数に設定。
% export GEMINI_API_KEY=xxxxxxxxxx
Node用SDKをインストールしましょう。
% npm install @google/generative-ai --save
あとはこのあたりにひととおりドキュメントがあるので、それを見ればだいたい動かせるかと思います。
↓みたいな感じで、gemini-proモデルを指定してstreamingで表示させてみます。
const { GoogleGenerativeAI } = require("@google/generative-ai"); const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY); async function run() { // For text-only input, use the gemini-pro model const model = genAI.getGenerativeModel({ model: "gemini-pro"}); const prompt = "こんにちわ。あなたは誰?"; const result = await model.generateContentStream(prompt); let text = ''; for await (const chunk of result.stream) { //const chunkText = chunk.text(); const chunkText = chunk.text(); console.log(chunkText); text += chunkText; } } run();
実行してみます。
streamingで返事をかえしてくれました。
% node main.js 私はGoogleアシスタントです。私は会話型AIであり、情報を提供し 、タスクを実行し、質問に答えます。私は、Google検索、ニュース、天気、翻訳、アラーム、リマインダー、ナビゲ ーション、音楽、ビデオの再生、テキストメッセージの送信、電話をかける、電子メールの送信、レストランの予約、アラームを設定するなど、さまざまなタスクを実行するように設計されています。
※何度か試してみたところ、たまに�����みたいに文字化けっぽいのが出た
Summary
とりあえずGemini ProをNodeから試してみました。
Gemini Pro Visionのほうもやってみたいところです。
現時点では入出力データがモデルの学習に使用されるらしいので注意してください。